<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>flat</title>
  <script>

    /**
     * flat([depth])方法会按照一个可指定的深度递归遍历数组，并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
     * depth 可选参数，默认为 1
     * 返回值，一个包含将数组与子数组中所有元素的新数组。
     */

    // 改方法会自动移除数组中的空项和扁平化数组
    const array = [1, 2, 3, , ['red', 'gerrn', 'purple']];

    const array2 = array.flat();

    console.log(array2); // [1, 2, 3, 'red', 'gerrn', 'purple']

    // 这里是数组嵌套为 3 层
    const array3 = [1, [2, [3, [4]]]];

    // 这里代表递归到3层
    const array4 = array3.flat(3);
    console.log(array4); // [1, 2, 3, 4]

  </script>
</head>

<body>

</body>

</html>